package app

import "fmt"

var (
	IllegalAccessError  = NewError(200, "非法访问")
	InnerError          = NewError(201, "内部程序异常")
	UserOrPasswordError = NewError(202, "用户名或密码不正确")
	ParamsError         = NewError(203, "参数错误")
	TokenTimeout        = NewError(204, "非法访问：token已过期")
	CodeError           = NewError(205, "验证码输入错误")
	UserNoExist         = NewError(206, "用户不存在")
	CaptchaNoExist      = NewError(207, "验证码不存在，请重新刷新验证码")
	ParamsEmpty         = NewError(208, "ParamsError")
	UploadError         = NewError(209, "上传文件失败")
	UploadFileError     = NewError(210, "上传文件格式错误")
	NoAuthDel           = NewError(211, "无权限删除")
	NoAuthSearch        = NewError(212, "无权限查询")
)

type ErrorCode struct {
	Code int    `json:"code"`
	Msg  string `json:"msg"`
}

var codes = map[int]string{}

func NewError(code int, msg string) *ErrorCode {
	if _, ok := codes[code]; ok {
		panic(fmt.Sprintf("错误码 %d 已经存在，请更换一个", code))
	}
	codes[code] = msg
	return &ErrorCode{Code: code, Msg: msg}
}
